# SPDX-License-Identifier: GPL-2.0
config VIDEO_ROCKCHIP_CIF
	tristate "Rockchip Camera Interface driver"
	depends on VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API
	depends on ARCH_ROCKCHIP || COMPILE_TEST
	depends on MEDIA_CAMERA_SUPPORT
	select VIDEOBUF2_CMA_SG
	select V4L2_FWNODE
	select PHY_ROCKCHIP_MIPI_RX
	default n
	help
	  Support for CIF on the rockchip SoCs like rk312x, rk3288.

choice
	prompt "rockchip camera sensor interface work mode"
	depends on VIDEO_ROCKCHIP_CIF
	default ROCKCHIP_CIF_WORKMODE_PINGPONG

config ROCKCHIP_CIF_WORKMODE_PINGPONG
	bool "interface works in pingpong mode"

config ROCKCHIP_CIF_WORKMODE_ONEFRAME
	bool "interface works in oneframe mode"

endchoice

choice
	prompt "rockchip rkcif device dummy buffer choice"
	depends on VIDEO_ROCKCHIP_CIF
	default ROCKCHIP_CIF_USE_DUMMY_BUF

config ROCKCHIP_CIF_USE_DUMMY_BUF
	bool "rkcif use dummy buffer"

config ROCKCHIP_CIF_USE_NONE_DUMMY_BUF
	bool "rkcif not use dummy buffer"

endchoice

config ROCKCHIP_CIF_USE_MONITOR
	bool "rkcif use monitor"
	depends on VIDEO_ROCKCHIP_CIF
	default n
	help
	  Support for CIF to monitor capture error.

config ROCKCHIP_CIF_MONITOR_MODE
	hex "rkcif monitor mode"
	default 0x1
	depends on ROCKCHIP_CIF_USE_MONITOR

config ROCKCHIP_CIF_MONITOR_START_FRAME
	hex "the frame id to start monitor"
	default 0
	depends on ROCKCHIP_CIF_USE_MONITOR

config ROCKCHIP_CIF_MONITOR_CYCLE
	hex "frame num of monitoring cycle"
	default 0x8
	depends on ROCKCHIP_CIF_USE_MONITOR

config ROCKCHIP_CIF_MONITOR_KEEP_TIME
	hex "timeout for keep monitoring after finding out error, unit(ms)"
	default 0x3e8
	depends on ROCKCHIP_CIF_USE_MONITOR

config ROCKCHIP_CIF_MONITOR_ERR_CNT
	hex "error reference val for resetting"
	default 0x5
	depends on ROCKCHIP_CIF_USE_MONITOR

config ROCKCHIP_CIF_RESET_BY_USER
	bool "rkcif reset by user"
	depends on ROCKCHIP_CIF_USE_MONITOR
	default n
	help
	  Support for CIF to reset pipe by user.

